1. Technical Field
The invention relates to the storage of information for use in Internet and World Wide Web (xe2x80x9cWebxe2x80x9d) based applications. More particularly, the invention relates to storing data in name-type-value triplets.
2. Description of the Prior Art
First generation World Wide Web (xe2x80x9cWebxe2x80x9d) applications are referenced by CGI (common gateway interface), in which a form is submitted from a Web page, where the data elements in the form are represented by a name of an element and a corresponding user entered value, i.e. as a name-value pair. This value could be a value from a list or a hand typed value. FIG. 1 is a schematic representation of a Web page 10 which provides a form into which data may be entered by a user. Various fields 11-13 are provided to receives such data, e.g. city, state, and zip code. The entered data correspond to name-value pairs 11a-13a in a name-value list. It can be seen that the data may be hand entered, as for city or zip code, or that the user may select the data from a list, as for state. It is always necessary to use lists of values of this type when writing Web applications. Over time it was gradually realized that the use of lists of values provides a very powerful way to represent data because one of the typical ways in which data are passed from one computer application to another is through a predefined set of values. For example, if it was desired to create a new customer account, it would be necessary to know that it is required to pass such information as, e.g. a name, address, city, and state, in a defined list of values with known types (see FIG. 1).
One of the limitations of this approach is presented when one wants to change the application program interface (xe2x80x9cAPIxe2x80x9d) for the underlying application program or system platform. Such activity is a very cumbersome process because it is necessary to find every place in a document or application that the API was called, where the value for the source API is no longer valid for the target API. That is , it is necessary to provide an additional value because the target API expects a different value than that of the source API.
It would be advantageous to provide a technique that allowed a list of values to contain any type of information desired. It would be further advantageous if such list of values could be readily used across various system platforms without regard to an underlying API.
The invention provides a feature referred to as Name Type Value storage (xe2x80x9cNTVxe2x80x9d). This feature provides a very flexible technique for storing data for use, for example in the Internet and in World Wide Web based applications. NTV storage is an extension of the familiar and powerful concept of storing data in name-value pairs, but with several significant enhancements. For example, one advantage of NTV is that values are stored in their native types, so that they can be manipulated without costly and inconvenient parsing and validation.
The preferred embodiment of NTV provides a list of values or names, referred to as triplets. In each triplet, NTV provides both an identifier and a name of a type, where a type can be one of several things, e.g. a type can be an integer, a floating point number, a string, an array of values, or another NTV object. NTV allows one to nest the various types. A third part of the triplet is the actual value itself, which is stored in its native type.